package cn.wangdh.domain.strategy.service.armory;


/**
 * @author WDH
 * @description 策略抽奖调度 （进行抽奖的接口）
 * @date 2024年09月09日 13:27
 */
public interface IStrategyDispatch {
    //根据策略id进行抽奖
    Integer getRandomAwardId(Long strategyId);

    Integer getRandomAwardId(Long strategyId,String ruleWeighValue);

    /**
     * 获取抽奖策略装配的随机结果
     *
     * @param key = strategyId + _ + ruleWeightValue；
     * @return 抽奖结果
     */
    Integer getRandomAwardId(String key);

    /**
     * 根据策略ID和奖品ID，扣减奖品缓存库存
     *
     * @param strategyId 策略ID
     * @param awardId    奖品ID
     * @return 扣减结果
     */
    Boolean subtractionAwardStock(Long strategyId, Integer awardId);

}
